// 验证登录用的token是否正常且能解析出用户数据
const JWT = require('jsonwebtoken');
const User = require('../model/user');


const config = 'QW';
module.exports = async (req, res, next) => {

    let token = req.headers["authorization"];
    // const user = JWT.verify(token.replace("Bearer ", ""), config);
    token = token.replace("Bearer ", "").replace(/"/g, '')
    try {
        //解析token
        const user = JWT.verify(token, config);

        // 根据解析好的token的信息查询用户
        const nowUser = await User.findById(user._id, { password: false });

        //判断该用户是否有效
        if (nowUser && nowUser._id) {
            //查询到了用户信息
            req.userInfo = nowUser;
            next();
        } else {
            //token信息无效（假token）
            res.json({ message: '登录过期，请重新登录' });
        }
    } catch (error) {
        //解析token失败（假token）
        res.json({ message: '登录过期，请重新登录' });
    }
}